Modern corporations frequently use virtual machine and hypervisor technology to allow multiple guest operating systems to run on a single host machine. This allows the corporation to maximize the resources of the host machines it owns. A corporation can also easily duplicate and modify instances of virtual machines, and revert and delete virtual machines using various interfaces provided by the virtual machine software vendor. The virtual machine software may run directly on the hardware (“bare metal hypervisor”) or on a host operating system running on the hardware. The hardware may further be customized to virtual machine execution, e.g., by having solid state drives to increase disk I/O.
The ease of modifying virtual machine instances has prompted virtual machine software vendors to introduce snapshot and cloning features. These features allow an administrator to create a snapshot of the state of a virtual machine, preserving the state of the virtual machine at the snapshot creation time. Furthermore, cloned virtual machines, which may be known as “child” virtual machines, may be created from these snapshots of the “parent” virtual machine. These child virtual machines include all the data of the snapshot of the parent virtual machine, and changes to the child virtual machine do not affect the snapshot or the original parent virtual machine. Furthermore, these child virtual machines may be created without the need to make an entire copy of the parent snapshot.